Order management systems are computer software and/or hardware systems implemented by a number of industries to facilitate order entry and processing. Companies, such as catalog companies and those utilizing electronic commerce, use order management systems to receive, process and fulfill customer orders. An order management system makes possible the entering of an order via a website shopping cart or data entry system. The system typically captures customer proprietary information and/or account level information for each order. Credit verification or payment processing may then be performed to check for available funds and validate the transaction. Valid orders are processed for warehouse fulfillment, including, picking, packing and shipping of the ordered goods or services.
Business processes are typically modeled by business architects/analysts. A business process may model message exchanges with different systems in a web services environment. The business architects/analysts then provide an information technology (“IT”) designer with the model. The IT designer uses an orchestration language, such as business process execution language (“BPEL”), to code the business process. BPEL processes are typically created in a BPEL editor and a deployed BPEL process is invoked. BPEL provides orchestration logic which can be mapped to a business process. BPEL is also standard-based and provides programming paradigms such as data types, if-else statements, switch statements, loops, method invocation, variables definition, and fault handling. BPEL supports all message exchange patterns, and supports both asynchronous and synchronous service invocations. Thus, some communications with external fulfillment systems will have a synchronous response, and some communications will have an asynchronous response.
Furthermore, interacting with fulfillment systems can prove challenging in many respects. For example, each fulfillment system can have a different way of treating status. Some fulfillment systems can send explicit status values, while other fulfillment systems can send other information that may imply a status change. The lack of a uniform format for the various messages each fulfillment system can send can increase the difficulty of interacting with the fulfillment systems.